package com.lagou;

import com.lagou.model.user;
import com.lagou.model.userMessage;

import java.io.IOException;
import java.util.Scanner;

/**
 * 编程实现客户端的主界面绘制和相应功能的实现
 */
public class ClientView {
    /**
     * 为了可以使用输入输出流，采用合成复用原则实现
     */
    private ClientInitClose cic;
    static user s = new user();

    /**
     * 通过构造方法实现成员变量的初始化
     * @param cic
     */


    public ClientView(ClientInitClose cic) {
        this.cic = cic;
    }

    public ClientView() {

    }

    /**
     * 自定义成员方法实现客户端主界面的绘制
     */
    public void clientMainPage() throws IOException, ClassNotFoundException {
        while (true) {
            System.out.println(" \t在线考试系统");
            System.out.println("-----------------");
            System.out.println("[1] 学员系统");
            System.out.println("[2] 管理员系统");
            System.out.println("[0] 退出系统");
            System.out.println("------------------");
            System.out.println("请选择要进行的业务编号：");
            Scanner sc = new Scanner(System.in);
            int choose = sc.nextInt();
            //int choose = ClientScanner
            switch (choose) {
                case 1:
                    System.out.println("正在进入学员系统");

                    break;
                case 2:
                    System.out.println("正在进入管理员系统");
                    clientManagerLogin();
                    break;
                case 3:
                    System.out.println("正在退出系统");
                    break;
                default:
                    System.out.println("输入错误，请重新选择");

            }
        }
    }

    /**
     * 自定义成员方法实现客户端管理员登录的功能
     */
    private void clientManagerLogin() throws IOException, ClassNotFoundException {
        //准备管理员登录的相关数据
        System.out.println("请输入管理员的账户信息：");
        String userName = ClientScanner.getScanner().next();
        System.out.println("请输入管理员的密码信息：");
        String password = ClientScanner.getScanner().next();
        userMessage tum = new userMessage("managerCheck",new user(userName,password));
        //将UserMessage类型的对象通过对象输出流发送给服务器
        cic.getOos().writeObject(tum);
        System.out.println("客户端发送管理员账户信息成功！");
        //接收服务器的处理结果并给出提示
        tum = (userMessage) cic.getOis().readObject();
        if ("success".equals(tum.getType())) {
            System.out.println("登录成功，欢迎使用");
            while (true){
                System.out.println("功能模块");
                System.out.println("-----------------");
                System.out.println("[1] 增加学员");
                System.out.println("[2] 删除学员");
                System.out.println("[3] 修改学员");
                System.out.println("[4] 查找学员");
                System.out.println("[5] 增加考题");
                System.out.println("[6] 查找考题");
                System.out.println("------------------");
                System.out.println("请选择要进行的业务编号：");
                Scanner sc = new Scanner(System.in);
                int choose = sc.nextInt();
                switch (choose) {
                    case 1:
                        add();
                        break;
                    case 2:
                        del();
                        break;
                    case 3:
                        System.out.println("正在退出系统");
                        break;
                    default:
                        System.out.println("输入错误，请重新选择");

                }
            }

        } else {
            System.out.println("用户名或密码错误");
        }

    }

    static void add() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生用户名");
        s.setUserName(sc.next());
        System.out.println("请输入学生密码");
        s.setPasswaord(sc.next());
    }

    static void del() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的学生用户名");
    }




    private void clientStudentLogin() throws IOException, ClassNotFoundException {
        //准备管理员登录的相关数据
        System.out.println("请输入学生的账户信息：");
        String userName = ClientScanner.getScanner().next();
        System.out.println("请输入学生的密码信息：");
        String password = ClientScanner.getScanner().next();
        userMessage tum = new userMessage("studentCheck",new user(userName,password));
        //将UserMessage类型的对象通过对象输出流发送给服务器
        cic.getOos().writeObject(tum);
        System.out.println("客户端发送管理员账户信息成功！");
        //接收服务器的处理结果并给出提示
        tum = (userMessage) cic.getOis().readObject();
        if ("success".equals(tum.getType())) {
            System.out.println("登录成功，欢迎使用");
            while (true) {
                System.out.println("功能模块");
                System.out.println("-----------------");
                System.out.println("[1] 修改密码");
                System.out.println("[2] 开始考试");
                System.out.println("[3] 查询成绩");
                System.out.println("------------------");
                System.out.println("请选择要进行的业务编号：");
                Scanner sc = new Scanner(System.in);
                int choose = sc.nextInt();
                switch (choose) {
                    case 1:
                        System.out.println("请输入新密码");
                        break;
                    case 2:
                        System.out.println("正在进入考试系统");
                        break;
                    case 3:
                        System.out.println("正在查询，请稍后");
                        break;
                    default:
                        System.out.println("输入错误，请重新选择");

                }
            }
        } else {
            System.out.println("用户名或密码错误");
        }
    }
}
